package com.nantong.admin.service;

import com.nantong.admin.domain.dto.LoginDTO;
import com.nantong.admin.domain.dto.LoginResultDTO;
import com.nantong.common.core.domain.model.LoginUser;

/**
 * 认证授权 业务层
 *
 * @author nantong
 */
public interface ISysAuthService {

    /**
     * 登录验证
     *
     * @param loginDTO 登录信息
     * @return 结果
     */
    LoginResultDTO login(LoginDTO loginDTO);

    /**
     * 获取用户信息
     *
     * @return 用户信息
     */
    LoginUser getLoginUser();

    /**
     * 获取用户信息
     *
     * @param token 用户唯一标识
     * @return 用户信息
     */
    LoginUser getLoginUser(String token);

    /**
     * 刷新令牌有效期
     *
     * @param loginUser 登录信息
     */
    void refreshToken(LoginUser loginUser);

    /**
     * 用户登出
     */
    void logout();

    /**
     * 用户登出
     *
     * @param token 用户唯一标识
     */
    void logout(String token);

}
